A GSoC 2013 Proposal Enhancing Giri: Dynamic Slicing in LLVM

نویسنده

  • Mingliang Liu
چکیده

Program slice contains all statements in a program that directly or indirectly act the value of a variable occurrence [14], the criteria of which is a pair of statement and variables. We can further narrow the notion of slice, which contains statements that influence the value of a variable occurrence for special program inputs. This is referred as dynamic program slicing [1]. It works on a single execution and outputs the executed statements (traces) relevant to the slicing criterion. There are many applications that use (or could benefit from) dynamic slicing, both by research and industry organizations (e.g. Microsoft, IBM). For example, it’s long been used in software debugging model [2, 5] and testing [3]. Sahoo et. al. from UIUC use dynamic program slicing to generate likely invariants for automated software fault localization [10]. Differential slicing [6] was a joint work by UC Berkeley, IMDEA Software Institute and CMU. It uses dynamic slicing to establish the sequence of value differences that affect the target, which can help them identifying causal execution differences for security applications. Gupta et. al. from the University of Arizona employed dynamic program slicing to narrow down the search for faulty code [4]. Our group from Tsinghua University would benefit from dynamic slicing in automatically finding manual configuration errors [15] in software deployment (see below). Recently, researchers from National University of Singapore and Microsoft used dynamic slicing to debug evolving programs [8]. Dennis Jeffrey from Google built a system for debugging via online tracing and dynamic slicing with other guys from university [7]. Researchers from IBM Research[9] who work on fault localization for data-centric programs, split the trace into multiple slices by applying dynamic slicing.

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Symbiotic: Synergy of Instrumentation, Slicing, and Symbolic Execution - (Competition Contribution)

Symbiotic is a tool for detection of bugs described by finite state machines in C programs. The tool combines three well-known techniques: instrumentation, program slicing, and symbolic execution. This paper briefly describes the approach of Symbiotic including its strengths, weaknesses, and modifications for SV-COMP 2013. Architecture and installation of the tool are described as well. 1 Verif...

متن کامل

Using Program Slicing Technique to Reduce the Cost of Software Testing

Systems of computers and their application in the lives of modern human beings are vastly expanding. In any kind of computer application, failure in computer systems can lead to a range of financial and mortal losses. Indeed, the major origin of software failure can be located in designing or implementing software. With regard to these statistics, 30% of the software projects have been prospero...

متن کامل

Fast Instruction Set Simulation Using LLVM-based Dynamic Translation

In the development of embedded systems, Instruction-Set Simulators (ISS) plays an important role. When using an ISS, simulation speed is a significant issue. In this paper, we present a dynamic translation technique that uses the LLVM open-source compiler infrastructure to increase the simulation speed. Our dynamic translation technique translates hot basic blocks of the target instruction set ...

متن کامل

Dynamic and Speculative Polyhedral Parallelization of Loop Nests Using Binary Code Patterns

Speculative parallelization is a classic strategy for automatically parallelizing codes that cannot be handled at compile-time due to the use of dynamic data and control structures. Another motivation of being speculative is to adapt the code to the current execution context, by selecting at run-time an efficient parallel schedule. However, since this parallelization scheme requires on-the-fly ...

متن کامل

Enhancing Passive Side-Channel Attack Resilience through Schedulability Analysis of Data-Dependency Graphs

In this work, we provide an evaluation of the fitness of a cipher implementation for automated, low overhead, Side Channel Attack (SCA) countermeasure insertion through instruction re-scheduling. This evaluation is automated by means of an extension to the Clang/LLVM compiler framework and is thus amenable to be performed on a generic cipher implementation in C.

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2013